// 返回本月第一天星期几
function getFirstDayWeek(date) {  // date => 形参 => 局部变量  a = date
    date = new Date(date);   //根据原日期得到新日期 => 修改新日期不会影响原日期
    date.setDate(1);
    return date.getDay();
}

// 返回上个月有多少天
function getLastMonthDays(date) {
    date = new Date(date);
    date.setDate(0);
    return date.getDate();
}

// 返回当前月有多少天  => 下个月的第0天就是本月的最后一天
function getThisMonthDays(date) {
    // 月份切换:问题
    // 大月(31)向小月(30 28 29)切换时 => 可能会超出小月的最大值 => 自动换算 => 出现问题
    // 假如今天: 2022-8-31 
    // 切下个月: 2022-9-31 => 2022-10-1  
    // 日期设置为0:  2022-10-0 => 2022-9-30

    // 怎么解决? => 修改月份之前 => 提前将日期设置为每个月都有的日期即可(1-28)
    // 假如今天: 2022-8-31 
    // 提前设置为1: 2022-8-1
    // 切下个月: 2022-9-1
    // 日期设置为0:  2022-9-0 => 2022-8-31

    date = new Date(date);
    date.setDate(1);
    // var month = date.getMonth(); // 当前月 0-11  !!!
    // date.setMonth(month + 1);  // 设置为 下一个月
    date.setMonth(date.getMonth() + 1);  //  设置为 下一个月

    date.setDate(0);  // 下个月的第0天
    return date.getDate();
}

